package com.yc.ioc.test.bean5;

import org.apache.log4j.Logger;
import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.env.Environment;
import org.springframework.core.type.AnnotatedTypeMetadata;


public class SystemConditional implements Condition {
    Logger log = Logger.getLogger(SystemConditional.class.getName());

    @Override
    public boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata) {
        Environment env = context.getEnvironment();
        //操作系统版本
        String os = env.getProperty("os.name");
        //操作系统版本号
        String osVersion = env.getProperty("os.version");
        //操作系统架构
        String osArch = env.getProperty("os.arch");
        //操作系统用户目录
        String userDir = env.getProperty("user.dir");
        //操作系统用户名称
        String userName = env.getProperty("user.name");
        //操作系统用户主目录
        String userHome = env.getProperty("user.home");
        //操作系统文件分隔符
        String fileSeparator = env.getProperty("file.separator");
        //操作系统路径分隔符
        String pathSeparator = env.getProperty("path.separator");
        //操作系统换行符
        String lineSeparator = env.getProperty("line.separator");
        //操作系统临时文件目录
        String tempDir = env.getProperty("java.io.tmpdir");
        //操作系统类路径
        String classPath = env.getProperty("java.class.path");

        log.info("操作系统版本"+os+"操作系统版本号"+osVersion);
        log.info("操作系统架构"+osArch+"操作系统用户目录"+userDir);
        log.info("操作系统用户名称"+userName+"操作系统用户主目录"+userHome);
        log.info("操作系统文件分隔符"+fileSeparator+"操作系统路径分隔符"+pathSeparator);
        log.info("操作系统换行符"+lineSeparator+"操作系统临时文件目录"+tempDir);
        log.info("操作系统类路径"+classPath);
        if (os != null && os.contains("Windows")) {
            return true;
        }
        return false;
    }


}
